Method, apparatus, and computer program product for selecting weather stations

ABSTRACT

A method is provided herein for selecting a combination of a subset of weather stations from among a plurality of weather stations for estimating the weather at a specific location. The method may include: receiving an indication of a plurality of weather stations within a predefined area, where the predefined area includes a first location; determining, for each of the plurality of weather stations, a distance of the weather station from the first location; calculating, for a plurality of different combinations of subsets of the plurality of weather stations, an average distance of the weather stations of each of the plurality of different combinations from the first location; calculating, for each of the different combinations of subsets, an average location relative to the first location; and selecting a combination of a subset of the plurality of weather stations based on the average distance and the average location.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/148,136, filed on May 6, 2016, the contents of which are hereinincorporated by reference in their entirety.

TECHNOLOGICAL FIELD

An example embodiment of the present invention relates to determining asubset of weather stations from a plurality of weather stations toestimate the weather at a first location; and more particularly, toevaluating the best subset of weather stations that is likely to providethe most accurate estimate of weather at a first location.

BACKGROUND

Weather stations may be used to gather information regardingweather-related information at geographically dispersed locations, suchthat the weather information may be used for historical trend data,current weather reporting, and future weather prediction. Weatherstations may include various sensors to gather weather-relatedinformation and report an abundance of weather attributes, such astemperature, humidity, barometric pressure, visibility, precipitation,wind speed, wind direction, etc. Weather stations traditionally haveincluded stationary apparatus that included various types ofspecifically configured sensors to gather weather-related data. Thesetraditional weather stations are conventionally located at airports,military bases, remote outposts, etc. However, mobile technology and thedevelopment of smaller, portable sensors capable of gatheringweather-related data has resulted in many mobile devices, traditionallynot used as weather stations, to function as weather stations. Thisenables crowd-sourcing of weather-related information. Control systemsmay request and/or receive weather information from a weather station ata known location for use in providing weather reports and weatherforecasts.

One drawback of using location-based weather data from weather stationsis that the weather data may only approximate the weather at a locationin which a user is interested. Further, the ubiquity of weather stationsmay result in an abundance of weather-related information, much of whichmay not be material to the desired weather information.

BRIEF SUMMARY

A method, apparatus, and computer program product are provided inaccordance with an example embodiment for selecting a combination of asubset of weather stations from among a plurality of weather stationsfor estimating the weather at a specific location. According to anexample embodiment, methods may include: receiving an indication of aplurality of weather stations within a predefined area, where thepredefined area includes a first location; determining, for each of theplurality of weather stations, a distance of the weather station fromthe first location; calculating, for a plurality of differentcombinations of subsets of the plurality of weather stations, an averagedistance of the weather stations of each of the plurality of differentcombinations from the first location; calculating, for each of thedifferent combinations of subsets of the plurality of weather stations,an average location relative to the first location; and selecting acombination of a subset of the plurality of weather stations based onthe average distance for the combination relative to the first locationand the average location for the combination relative to the firstlocation for use in conjunction with at least one of subsequent weatherupdates, mapping, or navigation.

According to some embodiments, the predefined area may be defined by apredefined radius extending from the first location. Calculating, forthe plurality of different combinations of subsets of the plurality ofweather stations, an average distance of the weather stations of each ofthe plurality of different combinations from the first location mayinclude calculating, for each combination of a predefined number ofweather stations of the plurality of weather stations, an averagedistance of the weather stations for each combination. A location of aweather station relative to the first location may be determined byconverting a latitude and longitude of the weather station to localCartesian coordinates with the first location being the origin, andsumming the values of the Cartesian coordinates for the weather station.

Determining a combination of a subset of the plurality of weatherstations based on the average distance for the combination relative tothe first location and the average location for the combination relativeto the first location may include: applying a first weight to theaverage distance of each combination of subsets of the plurality ofweather stations from the first location to obtain a weighted averagedistance for each combination; applying a second weight to the averagelocation of each combination of the subsets of the plurality of weatherstations relative to the first location to obtain a weighted averagelocation for each combination; summing, for each combination, theweighted average distance and the weighted average location; determiningif any of the combinations of subsets of the plurality of weatherstations meet a predefined criteria; and selecting a combination ofsubset of the plurality of weather stations that meets the predefinedcriteria.

According to some embodiments, the combinations of subsets may includeeach combination of three weather stations from the plurality of weatherstations. In response to determining that none of the combinations ofthree weather stations of the plurality of weather stations meet thepredefined criteria, the method may include: calculating, for eachcombination of four weather stations of the plurality of weatherstations, an average distance of the weather stations from the firstlocation; calculating, for each combination of four weather stations ofthe plurality of weather stations, an average location relative to thefirst location; applying a first weight to the average distance of eachcombination of four weather stations from the first location to obtain aweighted average distance for each combination of four weather stations;applying a second weight to the average location of each combination offour weather stations relative to the first location to obtain aweighted average location for each combination of four weather stations;summing, for each combination of four weather stations, the weightedaverage distance and the weighted average location; determining if anyof the combination of four weather stations meet a predefined criteria;and selecting a combination of four weather stations that meets thepredefined criteria.

Embodiments of the present invention may include an apparatus having atleast one processor and at least one memory including computer programcode. The at least one memory and computer program code may beconfigured to, with the processor, cause the apparatus to at least:receive an indication of a plurality of weather stations within apredefined area, where the predefined area includes a first location;determine, for each of the plurality of weather stations, a distance ofthe weather station from the first location; calculate, for a pluralityof different combinations of subsets of the plurality of weatherstations, an average distance of the weather stations of each of theplurality of different combinations from the first location; calculate,for each of the different combinations of subsets of the plurality ofweather stations, an average location relative to the first location;and select a combination of a subset of the plurality of weatherstations based on the average distance for the combination relative tothe first location and the average location for the combination relativeto the first location for use in conjunction with at least one ofsubsequent weather updates, mapping, or navigation. The predefined areamay be defined by a predefined radius extending from the first location.

Causing the apparatus to calculate, for a plurality of differentcombinations of subsets of the plurality of weather stations, an averagedistance of the weather stations of each of the plurality of differentcombinations from the first location may include causing the apparatusto calculate, for each combination of a predefined number of weatherstations of the plurality of weather stations, an average distance ofthe weather stations of each combination. A location of a weatherstation relative to the first location may be determined by causing theapparatus to convert a latitude and longitude of the weather station tolocal Cartesian coordinates with the first location being the origin,and summing values of the Cartesian coordinates for the weather station.

According to some embodiments, causing the apparatus to determine acombination of a subset of the plurality of weather stations based onthe average distance for the combination relative to the first locationand the average location for the combination relative to the firstlocation may include causing the apparatus to: apply a first weight tothe average distance of each combination of subsets of the plurality ofweather stations from the first location to obtain a weighted averagedistance for each combination; apply a second weight to the averagelocation of each combination of subsets of the plurality of weatherstations relative to the first location to obtain a weighted averagelocation for each combination; sum, for each combination, the weightedaverage distance and the weighted average location; determine if any ofthe combination of subsets of the plurality of subsets of weatherstations meets a predefined criteria; and select a combination ofsubsets of the plurality of weather stations that meets the predefinedcriteria. The combination of subsets includes each combination of threeweather stations from the plurality of weather stations.

In response to the apparatus determining that none of the combinationsof three weather stations of the plurality of weather stations meet thepredefined criteria, the apparatus may be caused to: calculate, for eachcombination of four weather stations of the plurality of weatherstations, an average distance of the weather stations from the firstlocation; calculate, for each combination of four weather stations fromthe plurality of weather stations, an average location relative to thefirst location; apply a first weight to the average distance of eachcombination of four weather stations from the first location to obtain aweighted average distance for each combination of four weather stations;apply a second weight to the average location of each combination offour weather stations relative to the first location to obtain aweighted average location for each combination of four weather stations;sum, for each combination of four weather stations, the weighted averagedistance and the weighted average location; determine if any of thecombination of four weather stations meet a predefined criteria; andselect a combination of four weather stations that meets the predefinedcriteria.

Embodiments of the present invention may provide a computer programproduct having at least one non-transitory computer-readable storagemedium having computer-executable program code portions stored therein.The computer-executable program code portions comprising program codeinstructions configured to: receive an indication of a plurality ofweather stations within a predefined area, where the predefined areacomprises a first location; determine, for each of the plurality ofweather stations, a distance of the weather station from the firstlocation; Calculate, for a plurality of different combinations ofsubsets of the plurality of weather stations, an average distance of theweather stations of each of the plurality of different combinations fromthe first location; calculate, for each of the different combinations ofsubset of the plurality of weather stations, an average locationrelative to the first location; and select a combination of a subset ofthe plurality of weather stations based on the average distance for thecombination relative to the first location and the average location forthe combination relative to the first location for use in conjunctionwith at least one of subsequent weather updates, mapping, or navigation.

The program code instructions configured to calculate, for a pluralityof different combinations of subsets of the plurality of weatherstations, an average distance of the weather stations of each of theplurality of different combinations from the first location comprisesprogram code instructions configured to calculate, for each combinationof a predefined number of weather stations of the plurality of weatherstations, an average distance of the weather stations of eachcombination. A location of a weather station relative to the firstlocation may be determined by program code instructions configured to:convert a latitude and a longitude of the weather station to localCartesian coordinates with the first location being the origin, andsumming values of the Cartesian coordinates for the weather station.

According to some embodiments, the program code instructions configuredto determine a combination of a subset of the plurality of weatherstations based on the average distance for the combination relative tothe first location and the average location for the combination relativeto the first location may include program code instructions configuredto: apply a first weight to the average distance of each combination ofsubsets of the plurality of weather stations from the first location toobtain a weighted average distance for each combination; apply a secondweight to the average location of each combination of subsets of theplurality of weather stations relative to the first location to obtain aweighted average location for each combination; sum, for eachcombination, the weighted average distance and the weighted averagelocation; determine if any of the combination of subsets of theplurality of weather stations meet a predefined criteria; and select acombination of subsets of the plurality of weather stations that meetsthe predefined criteria.

The combination of subsets may include each combination of three weatherstations from the plurality of weather stations. In response to theprogram code instructions determining that none of the combinations ofthree weather stations of the plurality of weather stations meet thepredefined criteria, the computer program product may further includeprogram code instructions configured to: calculate, for each combinationof four weather stations of the plurality of weather stations, anaverage distance of the weather stations from the first location;calculate, for each combination of four weather stations of theplurality of weather stations, an average location relative to the firstlocation; apply a first weight to the average distance of eachcombination of four weather stations from the first location to obtain aweighted average distance for each combination of four weather stations;apply a second weight to the average location of each combination offour weather stations relative to the first location to obtain aweighted average location for each combination of four weather stations;sum, for each combination of four weather stations, the weighted averagedistance and the weighted average location; determine if any of thecombinations of four weather stations meet a predefined criteria; andselect a combination of four weather stations that meets the predefinedcriteria.

BRIEF DESCRIPTION OF THE DRAWINGS

Having thus described example embodiments of the invention in generalterms, reference will now be made to the accompanying drawings, whichare not necessarily drawn to scale, and wherein:

FIG. 1 illustrates a communications diagram in accordance with anexample embodiment of the present invention;

FIG. 2 is a block diagram of an apparatus that may be specificallyconfigured for selecting a subset combination of weather stations fromamong a plurality of weather stations in accordance with an exampleembodiment of the present invention;

FIG. 3 illustrates a block diagram of a weather station apparatusaccording to an example embodiment of the present invention;

FIG. 4 depicts a schematic of a plurality of weather stations within apredefined area around a first location according to an exampleembodiment of the present invention;

FIG. 5 is a flowchart of an algorithm for selecting a combination of asubset of weather stations from among a plurality of weather stationsaccording to an example embodiment of the present invention; and

FIG. 6 is a flowchart of a method for selecting a combination of asubset of weather stations from among a plurality of weather stationsaccording to an example embodiment of the present invention.

DETAILED DESCRIPTION

Some embodiments of the present invention will now be described morefully hereinafter with reference to the accompanying drawings, in whichsome, but not all, embodiments of the invention are shown. Indeed,various embodiments of the invention may be embodied in many differentforms and should not be construed as limited to the embodiments setforth herein; rather, these embodiments are provided so that thisdisclosure will satisfy applicable legal requirements. Like referencenumerals refer to like elements throughout. As used herein, the terms“data,” “content,” “information,” and similar terms may be usedinterchangeably to refer to data capable of being transmitted, receivedand/or stored in accordance with embodiments of the present invention.Thus, use of any such terms should not be taken to limit the spirit andscope of embodiments of the present invention.

Additionally, as used herein, the term ‘circuitry’ refers to (a)hardware-only circuit implementations (for example, implementations inanalog circuitry and/or digital circuitry); (b) combinations of circuitsand computer program product(s) comprising software and/or firmwareinstructions stored on one or more computer readable memories that worktogether to cause an apparatus to perform one or more functionsdescribed herein; and (c) circuits, such as, for example, amicroprocessor(s) or a portion of a microprocessor(s), that requiresoftware or firmware for operation even if the software or firmware isnot physically present. This definition of ‘circuitry’ applies to alluses of this term herein, including in any claims. As a further example,as used herein, the term ‘circuitry’ also includes an implementationcomprising one or more processors and/or portion(s) thereof andaccompanying software and/or firmware. As another example, the term‘circuitry’ as used herein also includes, for example, a basebandintegrated circuit or applications processor integrated circuit for amobile phone or a similar integrated circuit in a server, a cellularnetwork device, other network device, and/or other computing device.

As defined herein, a “computer-readable storage medium,” which refers toa non-transitory physical storage medium (for example, volatile ornon-volatile memory device), can be differentiated from a“computer-readable transmission medium,” which refers to anelectromagnetic signal.

A method, apparatus, and computer program product are provided herein inaccordance with an example embodiment for selecting the minimum numberof weather stations to provide an estimation of weather for a givenlocation. FIG. 1 illustrates a communication diagram of an exampleembodiment of a system for implementing example embodiments describedherein. The illustrated embodiment of FIG. 1 includes a server 104, amobile device 114, and a plurality of weather stations 116 communicatingvia network 112. The mobile device 114 may be a device such as acellular telephone, mobile computer, or the like, and may be associatedwith or integrated with a vehicle, such as navigation system or driverinformation system of a vehicle. Additional, different, or fewercomponents may be provided. For example, many mobile devices 114 and/orweather stations 116 may connect with the network 112. The server 104may include a geographic repository or database of the presence andlocations (e.g., coordinates) of weather stations available in a region.The network may be wired, wireless, or any combination of wired andwireless communication networks, such as cellular, Wi-Fi, internet,local area networks, or the like.

The mobile device 114 may include a mobile computing device such as alaptop computer, tablet computer, mobile phone, smart phone, navigationunit, personal data assistant, watch, camera, or the like. Server 104may be one or more fixed or mobile computing devices. The mobile device114 may be configured to access the server 104 through, for example, aweather application, such that the mobile device 114 may access theweather station information via the network 112 directly, or via theserver 104 functioning as an intermediary.

An example embodiment of a mobile device 114 may be embodied in anapparatus as illustrated in FIG. 2. The apparatus 200, such as thatshown in FIG. 2, may be specifically configured in accordance with anexample embodiment of the present invention for selecting a subset ofavailable weather stations to more efficiently determine weatherproximate a specific location. The apparatus may include or otherwise bein communication with a processor 202, a memory device 204, acommunication interface 206, and a user interface 208. In someembodiments, the processor (and/or co-processors or any other processingcircuitry assisting or otherwise associated with the processor) may bein communication with the memory device via a bus for passinginformation among components of the apparatus. The memory device may benon-transitory and may include, for example, one or more volatile and/ornon-volatile memories. In other words, for example, the memory devicemay be an electronic storage device (for example, a computer readablestorage medium) comprising gates configured to store data (for example,bits) that may be retrievable by a machine (for example, a computingdevice like the processor 202). The memory device may be configured tostore information, data, content, applications, instructions, or thelike, for enabling the apparatus to carry out various functions inaccordance with an example embodiment of the present invention. Forexample, the memory device could be configured to buffer input data forprocessing by the processor. Additionally or alternatively, the memorydevice could be configured to store instructions for execution by theprocessor.

As noted above, the apparatus 200 may be embodied by mobile device 114.However, in some embodiments, the apparatus may be embodied as a chip orchip set. In other words, the apparatus may comprise one or morephysical packages (for example, chips) including materials, componentsand/or wires on a structural assembly (for example, a baseboard). Thestructural assembly may provide physical strength, conservation of size,and/or limitation of electrical interaction for component circuitryincluded thereon. The apparatus may therefore, in some cases, beconfigured to implement an example embodiment of the present inventionon a single “system on a chip.” As such, in some cases, a chip orchipset may constitute a means for performing one or more operations forproviding the functionalities described herein.

The processor 202 may be embodied in a number of different ways. Forexample, the processor may be embodied as one or more of varioushardware processing means such as a coprocessor, a microprocessor, acontroller, a digital signal processor (DSP), a processing element withor without an accompanying DSP, or various other processing circuitryincluding integrated circuits such as, for example, an ASIC (applicationspecific integrated circuit), an FPGA (field programmable gate array), amicrocontroller unit (MCU), a hardware accelerator, a special-purposecomputer chip, or the like. As such, in some embodiments, the processormay include one or more processing cores configured to performindependently. A multi-core processor may enable multiprocessing withina single physical package. Additionally or alternatively, the processormay include one or more processors configured in tandem via the bus toenable independent execution of instructions, pipelining and/ormultithreading.

In an example embodiment, the processor 202 may be configured to executeinstructions stored in the memory device 204 or otherwise accessible tothe processor. Alternatively or additionally, the processor may beconfigured to execute hard coded functionality. As such, whetherconfigured by hardware or software methods, or by a combination thereof,the processor may represent an entity (for example, physically embodiedin circuitry) capable of performing operations according to anembodiment of the present invention while configured accordingly. Thus,for example, when the processor is embodied as an ASIC, FPGA or thelike, the processor may be specifically configured hardware forconducting the operations described herein. Alternatively, as anotherexample, when the processor is embodied as an executor of softwareinstructions, the instructions may specifically configure the processorto perform the algorithms and/or operations described herein when theinstructions are executed. However, in some cases, the processor may bea processor specific device (for example, a mobile terminal or a fixedcomputing device) configured to employ an embodiment of the presentinvention by further configuration of the processor by instructions forperforming the algorithms and/or operations described herein. Theprocessor may include, among other things, a clock, an arithmetic logicunit (ALU) and logic gates configured to support operation of theprocessor.

The apparatus 200 of an example embodiment may also include acommunication interface 206 that may be any means such as a device orcircuitry embodied in either hardware or a combination of hardware andsoftware that is configured to receive and/or transmit data to/from acommunications device in communication with the apparatus, such as tofacilitate communications with one or more user equipment 104 or thelike. In this regard, the communication interface may include, forexample, an antenna (or multiple antennae) and supporting hardwareand/or software for enabling communications with a wirelesscommunication network. Additionally or alternatively, the communicationinterface may include the circuitry for interacting with the antenna(s)to cause transmission of signals via the antenna(s) or to handle receiptof signals received via the antenna(s). In some environments, thecommunication interface may alternatively or also support wiredcommunication. As such, for example, the communication interface mayinclude a communication modem and/or other hardware and/or software forsupporting communication via cable, digital subscriber line (DSL),universal serial bus (USB) or other mechanisms.

The apparatus 200 may also include a user interface 208 that may in turnbe in communication with the processor 202 to provide output to the userand, in some embodiments, to receive an indication of a user input. Assuch, the user interface may include a display and, in some embodiments,may also include a keyboard, a mouse, a joystick, a touch screen, touchareas, soft keys, one or more microphones, a plurality of speakers, orother input/output mechanisms. In one embodiment, the processor maycomprise user interface circuitry configured to control at least somefunctions of one or more user interface elements such as a display and,in some embodiments, a plurality of speakers, a ringer, one or moremicrophones and/or the like. The processor and/or user interfacecircuitry comprising the processor may be configured to control one ormore functions of one or more user interface elements through computerprogram instructions (for example, software and/or firmware) stored on amemory accessible to the processor (for example, memory device 204,and/or the like).

FIG. 3 illustrates an example block diagram of a weather stationembodied by apparatus 300. For example, a weather station may includeone or more sensors 308 for detecting, measuring, sensing, and/or thelike one or more weather-related parameters. Some non-limiting examplesof such parameters may include air temperature (including wet-bulbtemperature and dry-bulb temperature), dew point temperature, barometricpressure, visibility, humidity, precipitation intensity, precipitationtype, cloud cover, storm severity, etc. A weather station apparatus 300of example embodiments may include sensors to determine one or more ofthe aforementioned weather-related parameters. The weather stationapparatus 300 may include a processor 302 configured to receiveweather-related parameter information/data from the one or more sensors308, memory 304, and communications interface 306. In variousembodiments, the processor 302, memory 304, and communications interface306, may be similar components to that of apparatus 200, as describedelsewhere herein.

According to embodiments described herein, a weather station apparatus300 may be a static weather station. For example, the location of theweather station apparatus 300 may be fixed and unchanging. Such weatherstations may be located at an airport, city center, or other suchpoint-of-interest, for example. Weather station apparatuses mayoptionally be mobile, such as a weather station apparatus mounted to avehicle (e.g., a storm-chasing vehicle), or as a mobile station that maybe temporarily placed at specific locations (e.g., on a field for asporting event). Further, as sensor technology has advanced and costshave decreased, many mobile devices, such as a smart phone or mobilecomputing device, may be capable of functioning as a weather stationproviding some or all of the weather related information traditionallygathered at fixed weather stations. As such, according to someembodiments, a mobile weather station apparatus 300 may include a smartphone or mobile computing device. Weather station apparatuses mayinclude a location sensor (e.g., GPS sensor), particularly when theweather station apparatus is mobile, for determining and providing theweather station location information indicative of the location of theweather station apparatus. A fixed-location weather station apparatus300 may optionally include a location sensor, but may optionally havethe station location stored therein for reporting as needed or asrequested. Optionally, fixed-location weather stations may have uniqueidentifications, where a database, such as memory 204 of apparatus 200,may store the fixed location associated with the unique identificationof a weather station.

Example embodiments of the present invention may be provided toestablish a weather estimate for a specific location. In particular,based on the relative position of a plurality of weather stations withrespect to the location, a weather estimate is generated based on aselection of a subset of the plurality of weather stations. The weatherestimate generated based on the selected subset of weather stations, andmay be used for a variety of purposes, such as in weather updates to auser, mapping of weather estimates, or navigation (e.g., avoidingcertain weather conditions). A user, such as a user of mobile device 114of FIG. 1 embodied by apparatus 200, may request a weather estimate fora location. The request location information may be based on thelocation of the mobile device 114, or the location may be remote fromthe device and selected by the user. The weather estimate may be basedon a plurality of weather stations within a predefined distance of thelocation. The weather estimate may be determined via algorithms thatinterpret and use weather-related data gathered by the weather stationsto provide an accurate estimation of weather at a specific location.

While example embodiments described herein refer generally to a “weatherestimate” for a location, the weather estimate may be past, present, orfuture predicted weather for the location. Historical weather-relatedsensor readings from the weather stations of a selected combination ofweather stations may be used to determine or estimate the weather at apoint of time in the past at the location. Similarly, the historicalinformation collected by the selected combination of weather stationsmay be used as trend information to determine what the weather will belike at a point in time in the future. The combination of weatherstations may also be used to determine an estimate of the currentweather at the given location, such that methods described herein can beused in any such implementation.

A location for which a weather estimate is requested may have dozens,hundreds, or even thousands of weather stations within the predefineddistance of the location. Conventionally, information from each of theseweather stations may be used to provide the estimate of the weather atthe location. However, this requires substantial computational time andresources. If the number of weather stations within a predefineddistance of a location is relatively high, the processing time andmemory consumption may introduce latency in the weather estimate for thelocation, and the weather estimate may not be accurate for the specificlocation, particularly when weather across the predefined area varies.Provided herein is a method, apparatus, and computer program product toevaluate the available weather stations within a predefined distance ofa location and select the minimum number of weather stations with awell-defined geometric layout relative to the location. Embodimentsdescribed herein ensure that the subset of weather stations selectedprovide a weather estimate for the given location that is both moreaccurate and more efficiently determined relative to conventionalmethods.

FIG. 4 illustrates an example embodiment of a mobile device, which inthe depicted embodiment is within or embodied by a vehicle 400, wherethe vehicle 400 within a predefined distance of a plurality of weatherstations 401-408. According to example embodiments of the presentinvention, only a portion or a subset of the plurality of weatherstations may be needed to provide an accurate estimate of the weather atthe location of the vehicle 400. Embodiments described herein select theminimum number of weather stations surrounding the location to providethe accurate weather estimate. In the illustrated embodiment of FIG. 4,for example, weather stations 401, 402, and 403, are very close to oneanother such that they may be redundant, and only one of the three maybe needed. Embodiments described herein may select, for example, weatherstations 404, 406, and 408, to provide a good estimation of the weatherat the location of the vehicle 400. Alternatively, weather stations 408,405, and 404, may be used to provide a good estimation of weather at thelocation of the vehicle 400. However, the selection of the mostappropriate weather stations to use is not a trivial matter, andembodiments described herein automate the selection of weather stationsto provide the most accurate and efficient weather estimate for aspecific location.

FIGS. 5 and 6 depict flowcharts illustrative of methods according toexample embodiments of the present invention. It will be understood thateach block of the flowcharts and combination of blocks in the flowchartsmay be implemented by various means, such as hardware, firmware,processor, circuitry, and/or other communication devices associated withexecution of software including one or more computer programinstructions. For example, one or more of the procedures described abovemay be embodied by computer program instructions. In this regard, thecomputer program instructions which embody the procedures describedabove may be stored by a memory device 204 of an apparatus employing anembodiment of the present invention and executed by a processor 202 ofthe apparatus 200. As will be appreciated, any such computer programinstructions may be loaded onto a computer or other programmableapparatus (for example, hardware) to produce a machine, such that theresulting computer or other programmable apparatus implements thefunctions specified in the flowchart blocks. These computer programinstructions may also be stored in a computer-readable memory that maydirect a computer or other programmable apparatus to function in aparticular manner, such that the instructions stored in thecomputer-readable memory produce an article of manufacture the executionof which implements the function specified in the flowchart blocks. Thecomputer program instructions may also be loaded onto a computer orother programmable apparatus to cause a series of operations to beperformed on the computer or other programmable apparatus to produce acomputer-implemented process such that the instructions which execute onthe computer or other programmable apparatus provide operations forimplementing the functions specified in the flowchart blocks.

Accordingly, blocks of the flowcharts support combinations of means forperforming the specified functions and combinations of operations forperforming the specified functions for performing the specifiedfunctions. It will also be understood that one or more blocks of theflowcharts, and combinations of blocks in the flowcharts, can beimplemented by special purpose hardware-based computer systems whichperform the specified functions, or combinations of special purposehardware and computer instructions.

In order to select a subset of the plurality of weather stations withina predefined distance of a given location, an algorithm has beendeveloped to ensure the weather stations selected provide an efficientand accurate estimate of the weather. FIG. 5 illustrates a flowchartrepresentative of an example embodiment of an algorithm in accordancewith example embodiments of the present invention. A request for aweather estimate at a location may initiate the algorithm, where therequest may be manually generated by a user, generated autonomously by adevice, such as a navigation application, or generated periodically. Inresponse to the weather estimate request, a search radius projection maybe established from the location at which the weather estimate isrequested at 505. While the flowchart depicts a search radius, the shapeof the region in which weather stations are sought may not necessarilybe circular. For example, in an embodiment in which a search radius mayinclude geographic anomaly, such as a high mountain peak with differentmeteorological conditions, the area may be defined to exclude such ananomaly. At 510, the weather stations within the area are identified.The distance of each weather station to the location may be computed at515, such as by processor 202, using the location of each respectiveweather station (identified either by the weather stations themselves orbased on the stored location of uniquely identified weather stations)relative to the location for which the weather estimate is sought.

A minimum number of stations may be selected at 520, where everycombination of that minimum number of stations out of the plurality ofstations identified within the area is identified. For example, if thereare 10 weather stations WS-A through WS-J, and the minimum number ofweather stations is identified as three, the combinations may include:(WS-A, WS-B, WS-C); (WS-A, WS-B, WS-D); (WS-A, WS-B, WS-E) . . . (WS-H,WS-I, WS-J), or 120 different combinations. The combinations are withoutregard for the order in which the weather stations are combined as theorder has no effect on the result. For each different combinationestablished at 520, an average distance is calculated at 525 between thelocation for which the weather estimate is sought and the distances tothe weather stations of that combination. At 530, an average stationlocation is computed between the weather stations of each combinationand the location at which the weather estimate is sought. Thiscalculation may be performed to establish a numerical estimation of thegeometric layout of the weather stations around the location. For eachcombination, the geographic coordinates for each weather station (e.g.,in latitude and longitude) may be converted to local Cartesiancoordinates (x and y) with the location for which the weather estimateis sought being the origin of the Cartesian coordinates (x=0 and y=0).The summation of the weather stations x- and y-coordinates divided bythe number of stations provides the average weather station location.Table 1 below illustrates a portion of the different combinations ofweather stations (WS-A through WS-J) including their average distancefrom the location at which the weather estimate has been requested.

Distance of average Average distance of location to the the set ofstations location (Geometric Set of three stations from the locationlayout of stations) {WS-A, WS-B, WS-C} X km A km {WS-B, WS-D, WS-F} Y kmB km {WS-A, WS-D, WS-E} Z km C km . . . . . . . . .

For each combination, a first weight is applied to the average distanceof the set of weather stations, and a second weight is applied to theaverage location of the combination, as shown at 535. The two weightsare user configurable and may sum to one. The weights are userconfigurable in order to emphasize the more important characteristicsdesired of the selected weather stations, such as whether averagedistance is more critical, or if average location is more critical. Ifit is desired for the location at which the weather estimate isrequested to be well surrounded (e.g., geometrically or geographically)by weather stations, then the second weight, applied to the averagelocation, would be greater than the first weight, applied to the averagedistance. Conversely, if it is desired to prioritize proximity ofweather stations to the location at which the weather estimate isrequested over geometric dispersion, the first weight may be greaterthan the second weight. The calculation is performed, for each weatherstation combination, according to the following equation, applied at 540of the flowchart of FIG. 5:Combination Score=(Weight 1)×(Average distance)+(Weight 2)×(Averagelocation)

The weighted function to produce the combination score for eachcombination of weather stations may be compared against a predefinedvalue. The predefined value may be based on a quality measure, such thata combination score greater than the predefined value may be of poorerquality than is desirable. A combination score that is below apredefined value may be considered of sufficient quality to provide anaccurate estimate of the weather at the location. This comparison to thepredefined value is performed at 545 of the flowchart of FIG. 5.

According to an example embodiment, an implementation of the selectionof a minimum number of weather stations to provide an accurate weatherestimate for a given location may ensure that the selected subset ofweather stations geometrically surrounds the device or the location ofthe device for which an estimation of weather is to be provided. Thisgeometric surrounding helps ensure that the estimated weather is notskewed away from the location to a location, which may be proximate tothe specified location, but may have a substantially different weatherestimate.

At decision block 545, if the weighted average sum of 540 is above thepredefined value, the minimum number of stations is increased. Forexample, at 520, if the minimum number of weather stations is initiallyset to three stations, in response to the weighted average sum beingabove the predefined value, the minimum number of weather stations isincreased to four stations at 550 before returning to operation 520.This increase in the number of minimum stations enables the potentialfor greater geographic dispersion and can potentially reduce the averagedistance to the selected weather stations, such that the likelihood offinding a combination of weather stations for which the weighted averagesum is below the predefined value at 545. In response to the weightedaverage sum being below the predefined value at 545, a combination ofweather stations is selected at 555 for the generation of a weatherestimate for the location.

According to some embodiments, multiple combinations of weather stationsmay have weighted average sum below the predefined value. This mayparticularly be the case in a location where weather stations areprevalent and ubiquitous. In such an embodiment, the combination withthe lowest weighted average sum may be selected for use in generatingthe weather estimate at the location.

The method illustrated in the flowchart of FIG. 5 may be limited to thenumber of loops that can be made through 545 to 550 to 520. For example,if using three weather stations as the minimum number initially, inresponse to the weighted average sum being above the predefined valuefor three weather stations and four weather stations (e.g., where twoloops have been completed), a conclusion may be reached that thelocation at which the weather estimate is sought does not havesufficient weather station proximity or dispersion to complete the task.The number of iterations or loops may be user configured; however, withan increase in the number of allowed loops, and allowed minimum numberof weather stations, comes an increase to the computational costs whichthis method seeks to minimize. As such, in response to a determinationbeing made that the location lacks sufficient weather stations, asubstitute method of weather estimation may be performed. If asubstitute method, such as a conventional weather estimation method isperformed, a user may be informed that the weather estimate ispotentially less accurate due to the lack of sufficient weather stationsproximate the location.

Once a combination of weather stations has been selected for generatingan estimate of the weather at the location, a weather estimationalgorithm may be selected to provide the weather estimation to a user.

FIG. 6 illustrates a method for selecting a subset of weather stationsfrom among a plurality of weather stations to provide a weather estimateat a location. The method of FIG. 6 begins at 610 by receiving anindication of a plurality of weather stations within a predefined areaabout a first location. This indication may come from the weatherstations themselves (e.g., weather stations 116 of FIG. 1 communicatingwith mobile device 114 via network 112), or alternatively, the locationsof weather stations 116 may be stored in a memory, such as a memory ofserver 104, such that the server may identify the weather stations 116within a predefined area about the first location. For each of theplurality of weather stations, a distance of the weather station to thefirst location may be determined at 620. This may be performed by, forexample, mobile device 114 using processor 202, or performed remotelyvia server 104. A plurality of different combinations of subsets of theweather stations may be determined, and for each combination, an averagedistance between the weather stations and the first location may becalculated as shown at 630. For each of the different combinations, anaverage location relative to the first location may be calculated at640. A combination of a subset of the plurality of weather stations maybe selected at 650 based on the average distance for the combinationrelative to the first location and the average location for thecombination relative to the first location. The selected combination maysubsequently be used for weather updates, mapping, navigation, etc.

In an example embodiment, an apparatus for performing the methods ofFIG. 5 or 6 above may comprise a processor (e.g., the processor 202)configured to perform some or each of the operations (505-555 or610-650) described above. The processor may, for example, be configuredto perform the operations (505-555 or 610-650) by performing hardwareimplemented logical functions, executing stored instructions, orexecuting algorithms for performing each of the operations.Alternatively, the apparatus may comprise means for performing each ofthe operations described above. In this regard, according to an exampleembodiment, examples of means for performing operations 505-555 or610-650 may comprise, for example, the processor 202 and/or a device orcircuit for executing instructions or executing an algorithm forprocessing information as described above.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Moreover, although the foregoing descriptions and the associateddrawings describe example embodiments in the context of certain examplecombinations of elements and/or functions, it should be appreciated thatdifferent combinations of elements and/or functions may be provided byalternative embodiments without departing from the scope of the appendedclaims. In this regard, for example, different combinations of elementsand/or functions than those explicitly described above are alsocontemplated as may be set forth in some of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

That which is claimed:
 1. A method comprising: receiving an indicationof a plurality of weather stations within a predefined area, wherein thepredefined area comprises a first location; determining, for each of theplurality of weather stations, a location of the weather stationrelative to the first location; establishing every possible combinationof a predetermined number of weather stations from the plurality ofweather stations; calculating for each combination of the predeterminednumber of weather stations, an average location of the weather stationsin the combination relative to the first location; and selecting acombination from among every possible combination based at least in parton the average location of the selected combination from the firstlocation for use in conjunction with at least one of subsequent weatherupdates, mapping, or navigation.
 2. The method of claim 1, wherein thepredefined area is defined by a predefined radius extending from thefirst location.
 3. The method of claim 1, wherein the predeterminednumber of weather stations is a first predetermined number, whereinevery possible combination of the first predetermined number is everypossible first combination, and wherein selecting a first combinationfrom among every possible first combination based on the averagelocation of the selected combination comprises: selecting a firstcombination from among every possible first combination of the firstpredetermined number of weather stations in response to the averagelocation of the selected first combination satisfying a predeterminedcriteria; in response to the average location of every possible firstcombination of the first predetermined number of weather stationsfailing to satisfy the predetermined criteria: establishing everypossible second combination of a second predetermined number of weatherstations from the plurality of weather stations; calculating for eachsecond combination of the second predetermined number of weatherstations, an average location of the weather stations in the secondcombination relative to the first location; and selecting a secondcombination from among every possible second combination based on theaverage location of the selected second combination relative to thefirst location for use in conjunction with at least one of subsequentweather updates, mapping, or navigation.
 4. The method of claim 3,wherein the second predetermined number is greater by one than the firstpredetermined number.
 5. The method of claim 1, wherein a location of aweather station relative to the first location is determined by:converting a latitude and longitude of the weather station to localCartesian coordinates with the first location being the origin, andsumming values of the Cartesian coordinates for the weather station. 6.The method of claim 1, further comprising: determining, for each of theplurality of weather stations, a distance of the weather station fromthe first location; and calculating, for each combination of thepredetermined number of weather stations, an average distance of theweather stations in the combination from the first location; whereinselecting a combination from among every possible combination based atleast in part on the average location of the selected combination fromthe first location comprises selecting a combination from among everypossible combination based at least in part on the average location ofthe selected combination from the first location and the averagedistance of the selected combination from the first location.
 7. Themethod of claim 6, wherein selecting a combination from among everypossible combination based at least in part on the average location ofthe selected combination from the first location and the averagedistance of the selected combination from the first location comprises:applying a first weight to the average location for each combination toobtain a weighted average location for each combination; applying asecond weight to the average distance for each combination to obtain aweighted average distance for each combination; and selecting acombination from among every possible combination based on a respectiveweighted average distance and weighted average location.
 8. An apparatuscomprising at least one processor and at least one memory includingcomputer program code, the at least one memory and computer program codeconfigured to, with the processor, cause the apparatus to at least:receive an indication of a plurality of weather stations within apredefined area, wherein the predefined area comprises a first location;determine, for each of the plurality of weather stations, a location ofthe weather station relative to the first location; establish everypossible combination of a predetermined number of weather stations fromthe plurality of weather stations; calculate for each combination of thepredetermined number of weather stations, an average location of theweather stations in the combination relative to the first location; andselect a combination from among every possible combination based atleast in part on the average location of the selected combination fromthe first location for use in conjunction with at least one ofsubsequent weather updates, mapping, or navigation.
 9. The apparatus ofclaim 8, wherein the predefined area is defined by a predefined radiusextending from the first location.
 10. The apparatus of claim 8, whereinthe predetermined number of weather stations is a first predeterminednumber, wherein every possible combination of the first predeterminednumber is every possible first combination, and wherein causing theapparatus to select a first combination from among every possible firstcombination based on the average location of the selected combinationcomprises causing the apparatus to: select a first combination fromamong every possible first combination of the first predetermined numberof weather stations in response to the average location of the selectedfirst combination satisfying a predetermined criteria; in response tothe average location of every possible first combination of the firstpredetermined number of weather stations failing to satisfy thepredetermined criteria: establish every possible second combination of asecond predetermined number of weather stations from the plurality ofweather stations; calculate for each second combination of the secondpredetermined number of weather stations, an average location of theweather stations in the second combination relative to the firstlocation; and select a second combination from among every possiblesecond combination based on the average location of the selected secondcombination relative to the first location for use in conjunction withat least one of subsequent weather updates, mapping, or navigation. 11.The apparatus of claim 10, wherein the second predetermined number isgreater by one than the first predetermined number.
 12. The apparatus ofclaim 8, wherein a location of a weather station relative to the firstlocation is determined by: converting a latitude and longitude of theweather station to local Cartesian coordinates with the first locationbeing the origin, and summing values of the Cartesian coordinates forthe weather station.
 13. The apparatus of claim 8, wherein the apparatusis further caused to: determine, for each of the plurality of weatherstations, a distance of the weather station from the first location; andcalculate, for each combination of the predetermined number of weatherstations, an average distance of the weather stations in the combinationfrom the first location; wherein causing the apparatus to select acombination from among every possible combination based at least in parton the average location of the selected combination from the firstlocation comprises causing the apparatus to select a combination fromamong every possible combination based at least in part on the averagelocation of the selected combination from the first location and theaverage distance of the selected combination from the first location.14. The apparatus of claim 13, wherein causing the apparatus to select acombination from among every possible combination based at least in parton the average location of the selected combination from the firstlocation and the average distance of the selected combination from thefirst location comprises causing the apparatus to: apply a first weightto the average location for each combination to obtain a weightedaverage location for each combination; apply a second weight to theaverage distance for each combination to obtain a weighted averagedistance for each combination; and select a combination from among everypossible combination based on a respective weighted average distance andweighted average location.
 15. A computer program product comprising atleast one non-transitory computer-readable storage medium havingcomputer-executable program code portions stored therein, thecomputer-executable program code portions comprising program codeinstructions configured to: receive an indication of a plurality ofweather stations within a predefined area, wherein the predefined areacomprises a first location; determine, for each of the plurality ofweather stations, a location of the weather station relative to thefirst location; establish every possible combination of a predeterminednumber of weather stations from the plurality of weather stations;calculate for each combination of the predetermined number of weatherstations, an average location of the weather stations in the combinationrelative to the first location; and select a combination from amongevery possible combination based at least in part on the averagelocation of the selected combination from the first location for use inconjunction with at least one of subsequent weather updates, mapping, ornavigation.
 16. The computer program product of claim 15, wherein thepredetermined number of weather stations is a first predeterminednumber, wherein every possible combination of the first predeterminednumber is every possible first combination, and wherein the program codeinstructions configured to select a first combination from among everypossible first combination based on the average location of the selectedcombination comprise program code instructions to: select a firstcombination from among every possible first combination of the firstpredetermined number of weather stations in response to the averagelocation of the selected first combination satisfying a predeterminedcriteria; in response to the average location of every possible firstcombination of the first predetermined number of weather stationsfailing to satisfy the predetermined criteria: establish every possiblesecond combination of a second predetermined number of weather stationsfrom the plurality of weather stations; calculate for each secondcombination of the second predetermined number of weather stations, anaverage location of the weather stations in the second combinationrelative to the first location; and select a second combination fromamong every possible second combination based on the average location ofthe selected second combination relative to the first location for usein conjunction with at least one of subsequent weather updates, mapping,or navigation.
 17. The computer program product of claim 16, wherein thesecond predetermined number is greater by one than the firstpredetermined number.
 18. The computer program product of claim 15,wherein a location of a weather station relative to the first locationis determined by: converting a latitude and longitude of the weatherstation to local Cartesian coordinates with the first location being theorigin, and summing values of the Cartesian coordinates for the weatherstation.
 19. The computer program product of claim 15, furthercomprising program code instructions configured to: determine, for eachof the plurality of weather stations, a distance of the weather stationfrom the first location; and calculate, for each combination of thepredetermined number of weather stations, an average distance of theweather stations in the combination from the first location; wherein theprogram code instructions configured to select a combination from amongevery possible combination based at least in part on the averagelocation of the selected combination from the first location compriseprogram code instructions configured to select a combination from amongevery possible combination based at least in part on the averagelocation of the selected combination from the first location and theaverage distance of the selected combination from the first location.20. The computer program product of claim 19, wherein the program codeinstructions configured to select a combination from among everypossible combination based at least in part on the average location ofthe selected combination from the first location and the averagedistance of the selected combination from the first location compriseprogram code instructions configured to: apply a first weight to theaverage location for each combination to obtain a weighted averagelocation for each combination; apply a second weight to the averagedistance for each combination to obtain a weighted average distance foreach combination; and select a combination from among every possiblecombination based on a respective weighted average distance and weightedaverage location.